home *** CD-ROM | disk | FTP | other *** search
/ Macworld Expo - Develope…Central & Net Innovations / Developer Central and Net Innovators (MacWorld Expo) (January 1999).iso / Developer Central / Bowers Development / Demo AppMaker / Examples / Pascal OS8 / Everything / ModalCheckboxes.p < prev    next >
Encoding:
Text File  |  1998-10-30  |  6.0 KB  |  233 lines  |  [TEXT/CWIE]

  1. { ModalCheckboxes.p -- Modal dialog }
  2. { Created 10/30/98 1:06 PM by AppMaker }
  3.  
  4. Unit ModalCheckboxes;
  5. Interface
  6.  
  7. Uses
  8.     Types,
  9.     Quickdraw,
  10.     Controls,
  11.     Dialogs,
  12.     Events,
  13.     Lists,
  14.     Menus,
  15.     TextEdit,
  16.     DModalCheckboxesData,
  17.     AMDialog;
  18.  
  19. type
  20.     CModalCheckboxes        = object (AMDialog)
  21.  
  22.     {data members}
  23.         mData:        DModalCheckboxesData;
  24.  
  25.     mOKHandle:        ControlHandle;
  26.     mStandardHandle:        ControlHandle;
  27.     mXxHandle:        ControlHandle;
  28.     mGraphicHandle:        ControlHandle;
  29.     mLRHandle:        ControlHandle;
  30.     mLR2Handle:        ControlHandle;
  31.     mLR3Handle:        ControlHandle;
  32.     mLR4Handle:        ControlHandle;
  33.     mCheckboxHandle:        ControlHandle;
  34.     mBevelHandle:        ControlHandle;
  35.     mCheckbox2Handle:        ControlHandle;
  36.     mNextHandle:        ControlHandle;
  37.     mNext2Handle:        ControlHandle;
  38.  
  39.     {methods - public}
  40.         Procedure ConnectToData    (inData:    AMSignaler); Override;
  41.  
  42.     {methods - internal}
  43.         Procedure FinishMake; Override;
  44.         Procedure DoItem    (inItemHit:    SInt16); Override;
  45.         Procedure DataChanged    (inDataID:    longint); Override;
  46.  
  47.     end;
  48.  
  49. {----------}
  50. Function NewModalCheckboxes: CModalCheckboxes;
  51.  
  52. {----------}
  53. Function GetModalCheckboxes    (ioData:    DModalCheckboxesData): Boolean;
  54.  
  55. {----------}
  56. Implementation
  57.  
  58. Uses
  59.     ResourceDefs,
  60.     ControlUtils,
  61.     Miscellany;
  62.  
  63. const
  64.     kOKButton        = 1;
  65.     kStandardCheck        = 2;
  66.     kXxCheck        = 3;
  67.     kCapTriangleLabel        = 4;
  68.     kGraphicBox        = 5;
  69.     kCapcicnLabel        = 6;
  70.     kLRCheck        = 7;
  71.     kCapicl8Label        = 8;
  72.     kLR2Check        = 9;
  73.     kCapICNLabel        = 10;
  74.     kLR3Check        = 11;
  75.     kCapPICTLabel        = 12;
  76.     kLR4Check        = 13;
  77.     kCapicl9Label        = 14;
  78.     kCheckboxCheck        = 15;
  79.     kBevelBox        = 16;
  80.     kCheckbox2Check        = 17;
  81.     kNextCheck        = 18;
  82.     kNext2Check        = 19;
  83.  
  84.  
  85. {----------}
  86. Function NewModalCheckboxes: CModalCheckboxes;
  87. var
  88.     dialog:        CModalCheckboxes;
  89. begin
  90.     dialog := nil;
  91.     New (dialog);
  92.  
  93.     if dialog <> nil then begin
  94.         dialog.Initialize;
  95.     end;
  96.     NewModalCheckboxes := dialog;
  97. end;
  98.  
  99. {----------}
  100. Function GetModalCheckboxes (
  101.     ioData:        DModalCheckboxesData): Boolean;
  102. Var
  103.     result:            Boolean;
  104.     dialog:            CModalCheckboxes;
  105. begin
  106.     result := false;
  107.     dialog := NewModalCheckboxes;
  108.  
  109.     result := dialog.RunModal (DLOG_ModalCheckboxes, ioData);
  110.  
  111.     dialog.Free;
  112.     Dispose (dialog);
  113.  
  114.     GetModalCheckboxes := result;
  115. end;
  116.  
  117. {----------}
  118. Procedure CModalCheckboxes.FinishMake;
  119. var
  120.     errCode:        OSErr;
  121. begin
  122.     mOKHandle := GetControlItem (kOKButton);
  123.     SetDefaultState (mOKHandle, true);
  124.     errCode := SetDialogDefaultItem (mDialog, kOKButton);
  125.     mStandardHandle := GetControlItem (kStandardCheck);
  126.     mXxHandle := GetControlItem (kXxCheck);
  127.     mGraphicHandle := GetControlItem (kGraphicBox);
  128.     mLRHandle := GetControlItem (kLRCheck);
  129.     mLR2Handle := GetControlItem (kLR2Check);
  130.     mLR3Handle := GetControlItem (kLR3Check);
  131.     mLR4Handle := GetControlItem (kLR4Check);
  132.     mCheckboxHandle := GetControlItem (kCheckboxCheck);
  133.     mBevelHandle := GetControlItem (kBevelBox);
  134.     mCheckbox2Handle := GetControlItem (kCheckbox2Check);
  135.     errCode := SetBevelButtonGraphicAlignment (mCheckbox2Handle, kControlBevelButtonAlignCenter, 0, 0);
  136.     mNextHandle := GetControlItem (kNextCheck);
  137.     errCode := SetBevelButtonTextPlacement (mNextHandle, kControlBevelButtonPlaceToRightOfGraphic);
  138.     errCode := SetBevelButtonTextAlignment (mNextHandle, kControlBevelButtonAlignTextFlushLeft, 0);
  139.     errCode := SetBevelButtonGraphicAlignment (mNextHandle, kControlBevelButtonAlignLeft, 0, 0);
  140.     mNext2Handle := GetControlItem (kNext2Check);
  141.     errCode := SetBevelButtonTextPlacement (mNext2Handle, kControlBevelButtonPlaceBelowGraphic);
  142.     errCode := SetBevelButtonTextAlignment (mNext2Handle, kControlBevelButtonAlignTextCenter, 0);
  143.     errCode := SetBevelButtonGraphicAlignment (mNext2Handle, kControlBevelButtonAlignTop, 0, 0);
  144. end;
  145.  
  146. {----------}
  147. Procedure CModalCheckboxes.ConnectToData (
  148.     inData:        AMSignaler); Override;
  149. begin
  150.     inherited ConnectToData (inData);
  151.     mData := DModalCheckboxesData (inData);
  152.  
  153.     SetControlValue (mStandardHandle, ord (mData.GetStandard4));
  154.     SetControlValue (mXxHandle, ord (mData.GetXx2));
  155.     SetControlValue (mLRHandle, ord (mData.GetLR5));
  156.     SetControlValue (mLR2Handle, ord (mData.GetLR6));
  157.     SetControlValue (mLR3Handle, ord (mData.GetLR7));
  158.     SetControlValue (mLR4Handle, ord (mData.GetLR8));
  159.     SetControlValue (mCheckboxHandle, ord (mData.GetCheckbox3));
  160.     SetControlValue (mCheckbox2Handle, ord (mData.GetCheckbox4));
  161.     SetControlValue (mNextHandle, ord (mData.GetNext3));
  162.     SetControlValue (mNext2Handle, ord (mData.GetNext4));
  163. end;
  164.  
  165. {----------}
  166. Procedure CModalCheckboxes.DoItem (
  167.     inItemHit:        SInt16);
  168. begin
  169.     case inItemHit of
  170.     kOKButton:
  171.             SetResult (true);
  172.     kStandardCheck:
  173.             mData.SetStandard4 (ToggleCheckbox (mStandardHandle));
  174.     kXxCheck:
  175.             mData.SetXx2 (ToggleCheckbox (mXxHandle));
  176.     kLRCheck:
  177.             mData.SetLR5 (ToggleCheckbox (mLRHandle));
  178.     kLR2Check:
  179.             mData.SetLR6 (ToggleCheckbox (mLR2Handle));
  180.     kLR3Check:
  181.             mData.SetLR7 (ToggleCheckbox (mLR3Handle));
  182.     kLR4Check:
  183.             mData.SetLR8 (ToggleCheckbox (mLR4Handle));
  184.     kCheckboxCheck:
  185.             mData.SetCheckbox3 (ToggleCheckbox (mCheckboxHandle));
  186.     kCheckbox2Check:
  187.             mData.SetCheckbox4 (GetControlValue (mCheckbox2Handle) <> 0);
  188.     kNextCheck:
  189.             mData.SetNext3 (GetControlValue (mNextHandle) <> 0);
  190.     kNext2Check:
  191.             mData.SetNext4 (GetControlValue (mNext2Handle) <> 0);
  192.  
  193.     end; {switch}
  194. end;
  195.  
  196. {----------}
  197. Procedure CModalCheckboxes.DataChanged (
  198.     inDataID:        longint); Override;
  199. begin
  200.     if inDataID = idStandard4 then begin
  201.         SetControlValue (mStandardHandle, ord (mData.GetStandard4));
  202.     end;
  203.     if inDataID = idXx2 then begin
  204.         SetControlValue (mXxHandle, ord (mData.GetXx2));
  205.     end;
  206.     if inDataID = idLR5 then begin
  207.         SetControlValue (mLRHandle, ord (mData.GetLR5));
  208.     end;
  209.     if inDataID = idLR6 then begin
  210.         SetControlValue (mLR2Handle, ord (mData.GetLR6));
  211.     end;
  212.     if inDataID = idLR7 then begin
  213.         SetControlValue (mLR3Handle, ord (mData.GetLR7));
  214.     end;
  215.     if inDataID = idLR8 then begin
  216.         SetControlValue (mLR4Handle, ord (mData.GetLR8));
  217.     end;
  218.     if inDataID = idCheckbox3 then begin
  219.         SetControlValue (mCheckboxHandle, ord (mData.GetCheckbox3));
  220.     end;
  221.     if inDataID = idCheckbox4 then begin
  222.         SetControlValue (mCheckbox2Handle, ord (mData.GetCheckbox4));
  223.     end;
  224.     if inDataID = idNext3 then begin
  225.         SetControlValue (mNextHandle, ord (mData.GetNext3));
  226.     end;
  227.     if inDataID = idNext4 then begin
  228.         SetControlValue (mNext2Handle, ord (mData.GetNext4));
  229.     end;
  230. end;
  231.  
  232. End.
  233.